⚡ USB PD 状态机编程
实训目录
📘 30 章节 · 从入门到实战
01
PD协议概述
诞生背景 · 版本演进 1.0→3.1 · 与传统充电区别
→
02
物理层基础
CC引脚 · BMC编码 · Chunking机制
→
03
协议层核心
SOP*/PRIME包 · PDO/APDO/VDO
→
04
状态机总览
角色定义 · DRP/DFP/UFP
→
05
AttachWait状态
CC检测 · Rd/Rp配置 · 去抖计时器
→
06
Attached状态
角色确定 · 电源宣告 · PDO广播
→
07
Identify状态
Discover Identity · VDM解析
→
08
SVID协商
SVID列表交换 · 模式进入/退出
→
09
Source Capabilities
Source发送能力包 · Sink选择PDO
→
10
Sink Capabilities
Sink请求包 · GoodCRC应答
→
11
PS_RDY状态
电源就绪 · 电压/电流切换 · 过冲保护
→
12
GiveBack机制
Sink归还功率 · Source重新分配
→
13
PR_Swap
电源角色交换 · Swap流程与超时
→
14
DR_Swap
数据角色交换 · Host/Device切换
→
15
VCONN_Swap
VCONN切换 · 线缆芯片供电
→
16
Hard Reset
硬复位触发 · 时序 · VBUS放电
→
17
Soft Reset
软复位流程 · 状态重置 · 角色保持
→
18
Error Recovery
CRC错误 · 重传 · 超时恢复
→
19
PD协议定时器
SenderResponseTimer · PSTransitionTimer …
→
20
状态机编程框架
事件驱动 · 状态表 · 状态函数
→
21
消息队列实现
环形缓冲区 · 优先级 · 中断安全
→
22
PD协议栈分层
PHY · Protocol · Policy Engine
→
23
CC逻辑编程
ADC采样 · 比较器阈值 · 去抖算法
→
24
BMC解码实现
曼彻斯特解码 · 位时钟恢复 · 对齐
→
25
CRC32计算
PD协议CRC32 · 硬件加速 vs 软件
→
26
PDO管理
PDO数组 · 电压/电流校验 · APDO/PPS
→
27
VDM处理
Vendor Defined Message · Mode VDO · Alt Mode
→
28
多端口策略
多Type-C功率分配 · 动态调整 · 热管理
→
29
调试与测试
协议分析仪 · 逻辑分析仪 · 故障排查
→
30
综合实训
基于STM32的PD Source · 完整状态机实战
→